#pragma once

#include <rpc/rpc.h>


#ifdef __cplusplus
extern "C" {
#endif


struct User_UM_RPC {
	char username[33];
	char password[33];
	int nsip;
};
typedef struct User_UM_RPC User_UM_RPC;

struct Field_UM_RPC {
	User_UM_RPC user;
	char login[33];
	char field[33];
	char value[33];
};
typedef struct Field_UM_RPC Field_UM_RPC;

struct UserRec_UM_RPC {
	User_UM_RPC user;
	char login[33];
	char password[33];
	char name[256];
	char policy[256];
	char role[21];
};
typedef struct UserRec_UM_RPC UserRec_UM_RPC;

#define UM_PROG 32700004
#define UM_VERSION 1

#if defined(__STDC__) || defined(__cplusplus)
#define CHANGEFIELD 1
extern  int * changefield_1(Field_UM_RPC *, CLIENT *);
extern  int * changefield_1_svc(Field_UM_RPC *, struct svc_req *);
#define ADDUSER 2
extern  int * adduser_1(UserRec_UM_RPC *, CLIENT *);
extern  int * adduser_1_svc(UserRec_UM_RPC *, struct svc_req *);
#define DELETEUSER 3
extern  int * deleteuser_1(Field_UM_RPC *, CLIENT *);
extern  int * deleteuser_1_svc(Field_UM_RPC *, struct svc_req *);
extern int um_prog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);

#else /* K&R C */
#define CHANGEFIELD 1
extern  int * changefield_1();
extern  int * changefield_1_svc();
#define ADDUSER 2
extern  int * adduser_1();
extern  int * adduser_1_svc();
#define DELETEUSER 3
extern  int * deleteuser_1();
extern  int * deleteuser_1_svc();
extern int um_prog_1_freeresult ();
#endif /* K&R C */

/* the xdr functions */

#if defined(__STDC__) || defined(__cplusplus)
extern  bool_t xdr_User_UM_RPC (XDR *, User_UM_RPC*);
extern  bool_t xdr_Field_UM_RPC (XDR *, Field_UM_RPC*);
extern  bool_t xdr_UserRec_UM_RPC (XDR *, UserRec_UM_RPC*);

#else /* K&R C */
extern bool_t xdr_User_UM_RPC ();
extern bool_t xdr_Field_UM_RPC ();
extern bool_t xdr_UserRec_UM_RPC ();

#endif /* K&R C */

#ifdef __cplusplus
}
#endif
